/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package game;

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author Yanick
 */
public class GemischterStapel2 {

    private String[] farben = {"magenta", "orange", "blau", "braun", "gelb", "grau", "gruen"};
    private List<Farbkarte> AlleFarbkartenListe = new LinkedList<Farbkarte>();
    private List<Farbkarte> GemischterStapel = new ArrayList<Farbkarte>();

    
    //Konstruktor
    public GemischterStapel2() {

        //Mit dieser verschachtelten For-Schleife werden alle Farbkarten für das Spiel erstellt
        // erste for-schleife wird 7 mal durchlaufen (weil 7 farben)
        // zweite for-schleife wird 9 mal durchlaufen (9 karten pro farbe)
        for (int i = 0; i < 7; i++) {
            for (int j = 0; j < 9; j++) {

                Farbkarte fk = new Farbkarte(farben[i]);

                AlleFarbkartenListe.add(fk);
            }
        }
        
//        !! Dies wäre also deutlich einfacher!!        
//        Collections.shuffle(AlleFarbkartenListe);
//        for (Farbkarte e : AlleFarbkartenListe) {
//            if (e != null) {
//                System.out.println(e);
//            }
//        }
        
        
        //Die Farbkarten werden per Zufallszahl aus der List AlleFarbkartenListe ausgelesen
        // und in die List GemischterStapel eingefügt.
        for (int i = 0; i < 63; i++) {
            int ZufallsZahl = (int) (Math.random() * AlleFarbkartenListe.size());
            Farbkarte tmp = AlleFarbkartenListe.get(ZufallsZahl);
            GemischterStapel.add(tmp);
            AlleFarbkartenListe.remove(ZufallsZahl);
        }


        //zu Testzwecken!  
        //Der Gemischte Stapel wird ausgegeben.
//        for (Farbkarte e : GemischterStapel) {
//            if (e != null) {
//                System.out.println(e);
//            }
//        }
    }
    
    public int stapelGroesse(){
        return GemischterStapel.size();
    }
    
//    public Farbkarte karteAufnehmen(int karteposition){
//        return (Farbkarte)GemischterStapel.get(karteposition-1);
//    }
    
//    public Farbkarte zufälligeKarte(){
//        int ZufallsZahl = (int)(Math.random()*GemischterStapel.size());
//        Farbkarte Karte = GemischterStapel.get(ZufallsZahl);
//        GemischterStapel.remove(ZufallsZahl);
//        return Karte;
//    }
    
//    public void karteZuruecklegen(Farbkarte AktuelleKarte){
//        GemischterStapel.set(GemischterStapel.size()-1, AktuelleKarte);
//        GemischterStapel.add(AktuelleKarte);
//    }
    
    public Farbkarte neueKarte(Farbkarte AktuelleKarte){
        int letzteKarte = GemischterStapel.size()-1;
        Farbkarte Karte = (Farbkarte)GemischterStapel.get(letzteKarte);
        GemischterStapel.add(0, AktuelleKarte);
        return Karte;
    }
    
    
    public Farbkarte karteAufnehmen(){
        int a = GemischterStapel.size();
        return (Farbkarte) GemischterStapel.get(a-1);
    }
        
    public void letzteKarteLöschen(){
        int b = GemischterStapel.size()-1;
        GemischterStapel.remove(b);
    }
    
    //Nur zum testen
    public void restlicheKarten(){
            int a = GemischterStapel.size()-1;
            while(a >= 0) {                   
                System.out.println(GemischterStapel.get(a));
                a--;
            }
        }
}
    

